package com.lp.biz.order.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.io.Serial;
import lombok.Data;

/**
 * wechat_refund实体类
 * 退款记录表
 * @program: backend
 * @author Ke.Song
 * @since 2024-05-26 11:32:23
 */
@Data
@TableName("wechat_refund")
public class WechatRefund implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 微信支付退款号
     */
    private String refundId;

    /**
     * 商户退款单号
     */
    private String outRefundNo;

    /**
     * 微信支付订单号
     */
    private String transactionId;

    /**
     * 商户订单号
     */
    private String outTradeNo;

    /**
     * 用户接收退款的账号
     */
    private String userReceivedAccount;

    /**
     * 退款成功时间，格式YYYY-MM-DD HH:mm:ss
     */
    private String successTime;

    /**
     * 退款创建时间，格式YYYY-MM-DD HH:mm:ss
     */
    private String createTime;

    /**
     * 订单总金额，单位为分
     */
    private Long total;

    /**
     * 退款标价金额，单位为分
     */
    private Long refund;

    /**
     * 现金支付金额，单位为分
     */
    private Long payerTotal;

    /**
     * 退款给用户的金额，单位为分，不包含所有优惠券金额
     */
    private Long payerRefund;

    /**
     * 去掉非充值代金券退款金额后的退款金额，单位为分
     */
    private Long settlementRefund;

    /**
     * 应结订单金额
     */
    private Long settlementTotal;

    /**
     * 优惠退款金额
     */
    private Long discountRefund;

    /**
     * 退款币种
     */
    private String currency;

    /**
     * 手续费退款金额
     */
    private Long refundFee;

    /**
     * 退款渠道, ORIGINAL: 原路退款, BALANCE: 退回到余额, OTHER_BALANCE: 原账户异常退到其他余额账户, OTHER_BANKCARD: 原银行卡异常退到其他银行卡
     */
    @TableField("`channel`")
    private String channel;

    /**
     * 退款状态, SUCCESS: 退款成功 ,CLOSED: 退款关闭, PROCESSING: 退款处理中, ABNORMAL: 退款异常
     */
    @TableField("`status`")
    private String status;


}
